/// *
// * Copyright (c) 2018, ZeeSec Technologies. All rights reserved.
// * ZeeSec PROPRIETARY/CONFIDENTIAL.
// */
//
// package springtest.httpClient;
//
// import java.io.File;
// import java.io.FileOutputStream;
// import java.io.InputStream;
// import java.io.RandomAccessFile;
// import java.util.HashMap;
// import java.util.Map;
// import java.util.Scanner;
//
// import org.apache.http.HttpEntity;
// import org.apache.http.HttpResponse;
// import org.apache.http.client.HttpClient;
// import org.apache.http.client.methods.HttpGet;
// import org.apache.http.client.methods.HttpPost;
// import org.apache.http.entity.StringEntity;
// import org.apache.http.util.EntityUtils;
// import org.slf4j.Logger;
// import org.slf4j.LoggerFactory;
//
// import com.alibaba.fastjson.JSONObject;
// import com.zeesec.pom.other.parseDevice.JsonFormatter;
//
/// **
// * @author ZhiQiang Chen
// * @date 2018-09-10 15:14:28
// */
//
// public class DemoHttpClientCaptcha {
//
// private static final Logger log =
/// LoggerFactory.getLogger(DemoHttpClientCaptcha.class);
//
// @SuppressWarnings("resource")
// public static void main(String[] args) throws Exception {
// // 创建自定义的httpclient对象
// HttpClient client = HttpClientUtils.getHttpClient();
// getCaptcha(client);
// System.out.println("请输入验证码");
// Scanner in = new Scanner(System.in);
// String vericode = in.nextLine();
// in.close();
// String phpSesssionId = HttpClientUtils.getPhpSesssionId();
// System.out.println(phpSesssionId);
// // json方式
// JSONObject jsonParam = new JSONObject();
// jsonParam.put("user", "admin");
// jsonParam.put("pwd",
// "4ed7804bd116fa774c00b2c3fe4641627859107ec1721cd66f7c696e3471ad8225f8340bf4a8ea5a07f1e89ae6c6593c0070b3eb7319df9a421fd2195d2f78bf3661cdcb1d62c756c0626d92fed6c1a8312582292a694a6b59eaf946ca0fee2b90473130ad63160ebc1656df9308968efd9388b34e0761559a18fe1ad2da4d005e10a815054d6564bda12d8585baa4a8b1e59710f33d5dd72a431f9a9e2fad7a3eb0423065f5f1be7f861fe6f87823c8c63fa619417c0f6d40468f8c3b74c8c8ccadfec72d55ff66fa693cab367b1f283ff40ecab8c8bb2a1e2defc1c5c203b826937eca290342a5785cc5b940437ed335f8986044b91ed832ca91da1fb745b3");
// jsonParam.put("vericode", vericode);
// JSONObject jsonObject = new JSONObject();
// jsonObject.put("data", jsonParam);
// jsonObject.put("opr", "login");
// System.out.println(jsonObject.toJSONString());
// StringEntity entity = new StringEntity(jsonObject.toJSONString(), "utf-8");//
/// 解决中文乱码问题
// entity.setContentEncoding("UTF-8");
// entity.setContentType("application/json");
// HttpPost post = new
/// HttpPost("https://sapling.vicp.net:44333/cgi-bin/login.cgi");
// post.setHeader("Content-Type", "Application/X-www-Form");
// post.setHeader("User-Agent",
// "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko)
/// Chrome/69.0.3497.100 Safari/537.36");
// post.setEntity(entity);
//
// HttpResponse responsea = client.execute(post);
// HttpClientUtils.printCookies();
// String string = EntityUtils.toString(responsea.getEntity(), "utf-8");
// JSONObject parseObject = JSONObject.parseObject(string);
// if (parseObject.getBooleanValue("success")) {
// log.info("登录成功");
// } else {
// log.error("登录失败：" + parseObject);
// return;
// }
// System.out.println(string);
// long start = System.currentTimeMillis();
// getShowSysResData(client);
// getSubportData(client);
// getVlanData(client);
// getAggrData(client);
// getGreData(client);
// getZoneData(client);
// getStaticRouteData(client);
// getObjipgrpData(client);
// getPredefineServData(client);
// getDefineServData(client);
// getServiceGroupData(client);
// getAppconData(client);
// getNatRuleData(client);
// getSingletimeData(client);
// getObjtimeData(client);
// long end = System.currentTimeMillis();
// System.out.println("耗时:" + (end - start));
// }
//
// public static void getShowSysResData(HttpClient client) {
// try {
// Map<String, String> requestParam = new HashMap<>();
// requestParam.put("module", "page.object.IpGrp");
// requestParam.put("opr", "list");
// String data = getData(client, requestParam,
/// "https://sapling.vicp.net:44333/cgi-bin/show_sys_res.cgi",
// false, false);
// if (data == null) {
// return;
// }
// JSONObject parseObject = JSONObject.parseObject(data);
// String eth = JsonFormatter.prettyPrint(parseObject.getString("eth"));
// System.out.println(eth);
// writeData("{ \r\n \"sys_res\":{ \r\n \"eth\":" + eth + " \r\n } \r\n");
// // writeData("{ \"sys_res\":" + data + " \r\n");
// // System.out.println(data);
// } catch (Exception e) {
// log.error("物理接口数据获取失败", e);
// }
// }
//
// public static void getSubportData(HttpClient client) {
// try {
// Map<String, String> requestParam = new HashMap<>();
// requestParam.put("module", "page.networkconfig.zone");
// requestParam.put("opr", "list");
// String data = getData(client, requestParam,
/// "https://sapling.vicp.net:44333/cgi-bin/subport.cgi", false,
// false);
// if (data == null) {
// return;
// }
// writeData(", \"subport\":" + data + " \r\n");
// // System.out.println(data);
// } catch (Exception e) {
// log.error("子接口数据获取失败", e);
// }
// }
//
// public static void getVlanData(HttpClient client) {
// try {
// Map<String, String> requestParam = new HashMap<>();
// requestParam.put("module", "page.networkconfig.zone");
// requestParam.put("opr", "list");
// requestParam.put("type", "vlan");
// String data = getData(client, requestParam,
/// "https://sapling.vicp.net:44333/cgi-bin/vlan.cgi", false,
// false);
// if (data == null) {
// return;
// }
// writeData(", \"vlan\":" + data + " \r\n");
// // System.out.println(data);
// } catch (Exception e) {
// log.error("vlan接口数据获取失败", e);
// }
// }
//
// public static void getAggrData(HttpClient client) {
// try {
// Map<String, String> requestParam = new HashMap<>();
// requestParam.put("module", "page.networkconfig.zone");
// requestParam.put("opr", "list");
// requestParam.put("type", "vlan");
// String data = getData(client, requestParam,
/// "https://sapling.vicp.net:44333/cgi-bin/aggr.cgi", false,
// false);
// if (data == null) {
// return;
// }
// writeData(", \"aggr\":" + data + " \r\n");
// // System.out.println(data);
// } catch (Exception e) {
// log.error("聚合接口数据获取失败", e);
// }
// }
//
// public static void getGreData(HttpClient client) {
// try {
// Map<String, String> requestParam = new HashMap<>();
// requestParam.put("module", "page.networkconfig.zone");
// requestParam.put("opr", "list");
// requestParam.put("type", "vlan");
// String data = getData(client, requestParam,
/// "https://sapling.vicp.net:44333/cgi-bin/gre.cgi", false, false);
// if (data == null) {
// return;
// }
// writeData(", \"gre\":" + data + " \r\n");
// // System.out.println(data);
// } catch (Exception e) {
// log.error("gre隧道数据获取失败", e);
// }
// }
//
// public static void getZoneData(HttpClient client) {
// try {
// Map<String, String> requestParam = new HashMap<>();
// requestParam.put("module", "page.networkconfig.zone");
// requestParam.put("opr", "list");
// requestParam.put("type", "vlan");
// String data = getData(client, requestParam,
/// "https://sapling.vicp.net:44333/cgi-bin/zone.cgi", false,
// false);
// if (data == null) {
// return;
// }
// // System.out.println(data);
// writeData(", \"zone\":" + data + " \r\n");
// } catch (Exception e) {
// log.error("zone数据获取失败", e);
// }
// }
//
// public static void getStaticRouteData(HttpClient client) {
// try {
// Map<String, String> requestParam = new HashMap<>();
// requestParam.put("module", "page.networkconfig.route");
// requestParam.put("opr", "list");
// requestParam.put("ip_version", "4");
// requestParam.put("search", "");
// String data = getData(client, requestParam,
/// "https://sapling.vicp.net:44333/cgi-bin/staticRoute.cgi", false,
// false);
// if (data == null) {
// return;
// }
// // System.out.println(data);
// writeData(", \"staticRoute\":" + data + " \r\n");
// } catch (Exception e) {
// log.error("静态路由数据获取失败", e);
// }
// }
//
// public static void getObjipgrpData(HttpClient client) {
// try {
// Map<String, String> requestParam = new HashMap<>();
// requestParam.put("module", "page.object.IpGrp");
// requestParam.put("opr", "list");
// requestParam.put("start", "0");
// requestParam.put("limit", "100");
// requestParam.put("sort", "purposeType");
// requestParam.put("dir", "ASC");
// requestParam.put("purposeType", "3");
// requestParam.put("level", "0");
// requestParam.put("filterSecuDataPage", "0");
// requestParam.put("dataSecuNeed", "1");
// requestParam.put("search", "");
// String data = getData(client, requestParam,
/// "https://sapling.vicp.net:44333/cgi-bin/objipgrp.cgi", true,
// false);
// if (data == null) {
// return;
// }
// // System.out.println(data);
// writeData(", \"objipgrp\":" + data + " \r\n");
// } catch (Exception e) {
// log.error("地址对象数据获取失败", e);
// }
// }
//
// public static void getAppconData(HttpClient client) {
// try {
// Map<String, String> requestParam = new HashMap<>();
// requestParam.put("module", "page.contSec.appCon");
// requestParam.put("opr", "list");
// requestParam.put("start", "0");
// requestParam.put("limit", "100");
// requestParam.put("search", "");
// String data = getData(client, requestParam,
/// "https://sapling.vicp.net:44333/cgi-bin/appcon.cgi", true,
// false);
// // System.out.println(data);
// writeData(", \"appcon\":" + data + " \r\n");
// } catch (Exception e) {
// log.error("策略数据获取失败", e);
// }
// }
//
// public static void getNatRuleData(HttpClient client) {
// try {
// Map<String, String> requestParam = new HashMap<>();
// requestParam.put("module", "page.firewall.natRule");
// requestParam.put("opr", "list");
// requestParam.put("start", "0");
// requestParam.put("limit", "100");
// requestParam.put("search", "");
// String data = getData(client, requestParam,
/// "https://sapling.vicp.net:44333/cgi-bin/natrule.cgi", true,
// false);
// // System.out.println(data);
// writeData(", \"natrule\":" + data + " \r\n");
// } catch (Exception e) {
// log.error("nat策略数据获取失败", e);
// }
// }
//
// public static void getDefineServData(HttpClient client) {
// try {
// Map<String, String> requestParam = new HashMap<>();
// requestParam.put("module", "page.object.Service");
// requestParam.put("opr", "list");
// String data = getData(client, requestParam,
/// "https://sapling.vicp.net:44333/cgi-bin/defineServ.cgi", false,
// false);
// if (data == null) {
// return;
// }
// // System.out.println(data);
// writeData(", \"defineServ\":" + data + " \r\n");
// } catch (Exception e) {
// log.error("自定义服务数据获取失败", e);
// }
// }
//
// public static void getServiceGroupData(HttpClient client) {
// try {
// Map<String, String> requestParam = new HashMap<>();
// requestParam.put("module", "page.object.Service");
// requestParam.put("opr", "list");
// String data = getData(client, requestParam,
/// "https://sapling.vicp.net:44333/cgi-bin/serviceGroup.cgi",
// false, false);
// if (data == null) {
// return;
// }
// // System.out.println(data);
// writeData(", \"serviceGroup\":" + data + " \r\n");
// } catch (Exception e) {
// log.error("服务组数据获取失败", e);
// }
// }
//
// public static void getPredefineServData(HttpClient client) {
// try {
// Map<String, String> requestParam = new HashMap<>();
// requestParam.put("module", "page.object.Service");
// requestParam.put("opr", "list");
// String data = getData(client, requestParam,
/// "https://sapling.vicp.net:44333/cgi-bin/predefineServ.cgi",
// false, false);
// if (data == null) {
// return;
// }
// // System.out.println(data);
// writeData(", \"predefineServ\":" + data + " \r\n");
// } catch (Exception e) {
// log.error("预定义服务数据获取失败", e);
// }
// }
//
// public static void getSingletimeData(HttpClient client) {
// try {
// Map<String, String> requestParam = new HashMap<>();
// requestParam.put("module", "page.object.TimeGroup");
// requestParam.put("opr", "list");
// String data = getData(client, requestParam,
/// "https://sapling.vicp.net:44333/cgi-bin/singletime.cgi", false,
// false);
// if (data == null) {
// return;
// }
// // System.out.println(data);
// writeData(", \"singletime\":" + data + " \r\n");
// } catch (Exception e) {
// log.error("单次时间数据获取失败", e);
// }
// }
//
// public static void getObjtimeData(HttpClient client) {
// try {
// Map<String, String> requestParam = new HashMap<>();
// requestParam.put("module", "page.networkconfig.zone");
// requestParam.put("opr", "list");
// String data = getData(client, requestParam,
/// "https://sapling.vicp.net:44333/cgi-bin/objtime.cgi", false,
// false);
// if (data == null) {
// return;
// }
// // System.out.println(data);
// writeData(",\"objtime\":" + data + " \r\n }");
// } catch (Exception e) {
// log.error("时间对象循环数据获取失败", e);
// }
// }
//
// public static String getData(HttpClient client, Map<String, String>
/// requestParam, String uri, boolean isPaging,
// boolean isRecursion) throws Exception {
// HttpPost post = new HttpPost(uri);
// post.setHeader("Content-Type", "application/json");
// post.setHeader("Pragma", "no-cache");
// post.setHeader("User-Agent",
// "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko)
/// Chrome/69.0.3497.100 Safari/537.36");
// post.setHeader("X-Requested-With", "XMLHttpRequest");
// // 请求参数
// JSONObject jsonParam = new JSONObject();
// for (String key : requestParam.keySet()) {
// jsonParam.put(key, requestParam.get(key));
// }
// // cf为sessionid三次md5加密数据
// jsonParam.put("cf", HttpClientUtils.getSessionIdMd5By3());
// log.debug("请求uri:" + uri + ";请求参数:" + jsonParam.toJSONString());
// StringEntity entity = new StringEntity(jsonParam.toJSONString(), "utf-8");
// entity.setContentEncoding("UTF-8");
// entity.setContentType("application/json");
// post.setEntity(entity);
// HttpResponse response = client.execute(post);
// String result = EntityUtils.toString(response.getEntity(), "utf-8");
// JSONObject jsonResult = JSONObject.parseObject(result);
// if (jsonResult.getBoolean("success")) {
// if (isPaging) {
// if (isRecursion) {
// return JsonFormatter.prettyPrint(jsonResult.getString("data"));
// } else {
// // 需要分页的分页默认100
// int count = jsonResult.getIntValue("count");
// if (count > 2) {
// // 如果总数大于默认，第二次目前一次性获取所有
// requestParam.put("limit", String.valueOf(count));
// String data = getData(client, requestParam, uri, isPaging, true);
// if (data == null) {
// return "";
// }
// return JsonFormatter.prettyPrint(data);
// } else {
// String data = jsonResult.getString("data");
// if (data == null) {
// return "";
// }
// return JsonFormatter.prettyPrint(data);
// }
// }
// } else {
// // 不需要分页的
// String data = jsonResult.getString("data");
// if (data == null) {
// return "";
// }
// return JsonFormatter.prettyPrint(data);
// }
// } else {
// log.error("数据获取失败." + "请求uri:" + uri + ";请求参数:" + jsonParam.toJSONString() +
/// "返回的结果" + result);
// }
// return null;
// }
//
// public static void writeData(String data) throws Exception {
// String url = DemoHttpClientCaptcha.class.getResource("").toString();
// File file = new File("E:/00m2/parse/sangfor.json");
// if (!file.exists()) {
// File parentFile = file.getParentFile();
// if (!parentFile.exists()) {
// parentFile.mkdirs();
// }
// file.createNewFile();
// }
// RandomAccessFile raf = new RandomAccessFile(file, "rw");
// raf.seek(raf.length());
// raf.write(data.getBytes());
// raf.close();
// }
//
// public static void getCaptcha(HttpClient client) throws Exception {
// // 创建自定义的httpclient对象 https://sapling.vicp.net:44333/captcha.php
// HttpGet get = new HttpGet("https://sapling.vicp.net:44333/captcha.php");
// HttpResponse response = client.execute(get);
// // 得到实体
// HttpEntity entity = response.getEntity();
// InputStream in = entity.getContent();
// // 图片存入磁盘 + UUID.randomUUID().toString()
// FileOutputStream fos = new FileOutputStream("d:/mpl" + ".jpg");
// // entity.writeTo(fos);
// byte[] buf = new byte[1024];
// int len = 0;
// while ((len = in.read(buf)) != -1) {
// fos.write(buf, 0, len);
// }
// fos.flush();
// fos.close();
// System.out.println("图片下载成功!!!!");
// }
//
// }
